<Step title="Run Sequin" icon="server">
  The easiest way to get started with Sequin is with our [Docker Compose file](https://github.com/sequinstream/sequin/blob/main/docker/docker-compose.yaml). This file starts a Postgres database, Redis instance, and Sequin server.

  <Steps>
    <Step title="Create directory and start services">
      1. Download [sequin-docker-compose.zip](https://github.com/sequinstream/sequin/releases/latest/download/sequin-docker-compose.zip).
      2. Unzip the file.
      3. Navigate to the unzipped directory and start the services:

      ```bash
      cd sequin-docker-compose && docker compose up -d
      ```

      <AccordionGroup>
        <Accordion title="Alternative: Download with curl">
          ```bash
          curl -L https://github.com/sequinstream/sequin/releases/latest/download/sequin-docker-compose.zip -o sequin-docker-compose.zip \
            && unzip sequin-docker-compose.zip && rm sequin-docker-compose.zip
          cd sequin-docker-compose && docker compose up -d
          ```
        </Accordion>
        <Accordion title="Alternative: Clone the repository">
          ```bash
          git clone git@github.com:sequinstream/sequin.git
          cd sequin/docker
          docker compose up -d
          ```
        </Accordion>
      </AccordionGroup>
    </Step>
    <Step title="Verify services are running">
      Check that Sequin is running using `docker ps`:

      ```bash
      docker ps
      ```

      You should see output like the following:

      ```
      CONTAINER ID   IMAGE                           COMMAND                  CREATED          STATUS                    PORTS                              NAMES
      bd5c458cabde   sequin/sequin:latest            "/scripts/start_comm…"   11 seconds ago   Up 9 seconds              4000/tcp, 0.0.0.0:7376->7376/tcp   sequin-sequin-1
      3bacd89765e7   grafana/grafana                 "/run.sh"                11 seconds ago   Up 11 seconds             0.0.0.0:3000->3000/tcp             sequin-sequin_grafana-1
      3ad41319a66c   postgres:16                     "docker-entrypoint.s…"   11 seconds ago   Up 11 seconds (healthy)   0.0.0.0:7377->5432/tcp             sequin-sequin_postgres-1
      6139a5fc4e80   redis:7                         "docker-entrypoint.s…"   11 seconds ago   Up 11 seconds             0.0.0.0:7378->6379/tcp             sequin-sequin_redis-1
      7e07a5b052de   prom/prometheus                 "/bin/prometheus --c…"   11 seconds ago   Up 11 seconds             0.0.0.0:9090->9090/tcp             sequin-sequin_prometheus-1
      ```

      <Check>
        Sequin, Postgres, Redis, Prometheus, and Grafana should be up and running (status: `Up`).
      </Check>
    </Step>
  </Steps>
</Step>
<Step title="Login" icon="key">
  The Docker Compose file automatically configures Sequin with an admin user and a playground database.

  Let's log in to the Sequin web console:

  <Steps>
    <Step title="Open the web console">
      After starting the Docker Compose services, open the Sequin web console at [http://localhost:7376](http://localhost:7376):

      <Frame>
        <img src="/images/quickstart/login-page.png" alt="Sequin login page, allowing login with default credentials" />
      </Frame>
    </Step>

    <Step title="Login with default credentials">
      Use the following default credentials to login:
      
      - Email:
      ```
      admin@sequinstream.com
      ```

      - Password:
      ```
      sequinpassword!
      ```
    </Step>

  </Steps>
</Step>
<Step title="View the playground database" icon="database">
  To get you started quickly, Sequin's Docker Compose file creates a logical database called `sequin_playground` with a sample dataset in the `public.products` table.

  Let's take a look:

  <Steps>
    <Step title="Navigate to Databases">
      In the Sequin web console, click **Databases** in the sidebar.
    </Step>

    <Step title="Select playground database">
      Click on the pre-configured `sequin-playground` database:

      <Frame>
        <img src="/images/quickstart/playground-database.png" alt="Playground database" />
      </Frame>

      <Check>
        The database "Health" should be green.
      </Check>
    </Step>

      <Step title="View contents of the products table">
        Let's get a sense of what's in the `products` table. Run the following command: 

        ```bash
        docker exec -i sequin-sequin_postgres-1 \
          psql -U postgres -d sequin_playground -c \
          "select id, name, price from products;"
        ```

          <Info>
          This command connects to the running Postgres container and runs a `psql` command.
        </Info>

        You should see a list of the rows in the `products` table:

        ```
          id |         name          | price 
        ----+-----------------------+-------
          1 | Avocados (3 pack)     |  5.99
          2 | Flank Steak (1 lb)    |  8.99
          3 | Salmon Fillet (12 oz) | 14.99
          4 | Baby Spinach (16 oz)  |  4.99
          5 | Sourdough Bread       |  6.99
          6 | Blueberries (6 oz)    |  3.99
        (6 rows)
        ```

        We'll make modifications to this table in a bit.
      </Step>
  </Steps>
</Step>